MCP 문서 관리

메뉴

Elasticsearch

Elasticsearch

Elasticsearch MCP 서버는 LLM이 Elasticsearch 및 OpenSearch 데이터와 직접 상호작용할 수 있게 해주는 Model Context Protocol 서버입니다. 이 서버를 통해 자연어 대화로 Elasticsearch 인덱스를 검색하고 분석할 수 있습니다.

특징

  • Elasticsearch 및 OpenSearch 클러스터와의 완벽한 통합
  • 자연어 대화를 통한 데이터 검색 및 분석
  • 인덱스 목록 조회 및 관리
  • 필드 매핑 검사
  • 복잡한 쿼리 DSL 검색 실행
  • 샤드 정보 검색
  • API 키 기반 인증 지원
  • 역할 기반 접근 제어

주요 도구

인덱스 관리 도구

  • list_indices: 사용 가능한 모든 Elasticsearch 인덱스 목록 조회
  • get_shards: 모든 또는 특정 인덱스의 샤드 정보 검색
  • get_mappings: 특정 Elasticsearch 인덱스의 필드 매핑 정보 검색

검색 도구

  • search: 제공된 쿼리 DSL로 Elasticsearch 검색 수행
  • simple_search: 텍스트 기반 간단한 검색 수행
  • semantic_search: 임베딩 기반 시맨틱 검색 수행
  • highlight_search: 자동 텍스트 하이라이팅 기능이 있는 검색 수행

API 관리 도구

  • general_api_request: 전용 도구가 없는 Elasticsearch/OpenSearch API에 일반 HTTP API 요청 수행

설치 및 사용 방법

Claude Desktop 구성

Claude Desktop에서 Elasticsearch MCP 서버를 사용하기 위한 구성:

{
  "mcpServers": {
    "elasticsearch-mcp-server": {
      "command": "npx",
      "args": [
        "-y",
        "@elastic/mcp-server-elasticsearch"
      ],
      "env": {
        "ES_URL": "your-elasticsearch-url",
        "ES_API_KEY": "your-api-key"
      }
    }
  }
}

또는 사용자 이름과 비밀번호로 인증:

{
  "mcpServers": {
    "elasticsearch-mcp-server": {
      "command": "npx",
      "args": [
        "-y",
        "@elastic/mcp-server-elasticsearch"
      ],
      "env": {
        "ES_URL": "your-elasticsearch-url",
        "ES_USERNAME": "your-username",
        "ES_PASSWORD": "your-password"
      }
    }
  }
}

OpenSearch 구성

OpenSearch를 사용하는 경우:

{
  "mcpServers": {
    "opensearch-mcp-server": {
      "command": "uvx",
      "args": [
        "elasticsearch-mcp-server"
      ],
      "env": {
        "OPENSEARCH_HOSTS": "https://localhost:9200",
        "OPENSEARCH_USERNAME": "admin",
        "OPENSEARCH_PASSWORD": "admin"
      }
    }
  }
}

보안 권장 사항

최소 권한의 원칙에 따라 전용 API 키 생성:

POST /_security/api_key
{
  "name": "es-mcp-server-access",
  "role_descriptors": {
    "mcp_server_role": {
      "cluster": [
        "monitor"
      ],
      "indices": [
        {
          "names": [
            "index-1",
            "index-2",
            "index-pattern-*"
          ],
          "privileges": [
            "read",
            "view_index_metadata"
          ]
        }
      ]
    }
  }
}

프롬프트 예시

Elasticsearch MCP 서버와 상호작용하기 위한 예시 프롬프트:

  1. "내 Elasticsearch 클러스터에 어떤 인덱스가 있나요?"
  2. "'products' 인덱스의 필드 매핑을 보여주세요"
  3. "지난 달 $500 이상의 모든 주문을 찾아주세요"
  4. "가장 많은 5점 리뷰를 받은 제품은 무엇인가요?"
  5. "뉴욕 지역의 모든 고객 목록을 보여주세요"
  6. "지난 주 로그 인덱스에서 오류 메시지를 검색해주세요"
  7. "products 인덱스의 카테고리별 제품 수를 계산해주세요"
  8. "users 인덱스에서 최근에 가입한 상위 10명의 사용자를 찾아주세요"

연결된 구성 요소

  • MongoDB - NoSQL 문서 기반 데이터베이스 서버
  • Neo4j - 그래프 데이터베이스 서버
  • Redis - 키-값 저장소 데이터베이스 서버
  • PostgreSQL - 관계형 데이터베이스 서버